.progress {
	width: 500px;
	margin-top: 24px;
	border: 1px solid #f4836d;
	background: white;
	overflow: hidden;
	border-radius: 4px;
}

.progress .score {
	display: inline-block;
	padding: 6px 0;
	background: linear-gradient(to right, #fac8bf, #f4836d);
	color: white;
	text-align: center;
	transition-property: background, width;
	transition-duration: 0.5s;
}

.progress.pass {
	border-color: #45a889;
}

.progress.pass .score {
	background: linear-gradient(to right, #b1dacd, #45a889);
}

.progress.invalid {
	border-color: red;
}

.progress.invalid:before {
	content: "Invalid Score!";
	color: red;
	font-weight: bold;
	display: block;
	text-align: center;
	padding: 6px 0;
}

.progress.invalid .score {
	display: none;
}

.gauge {
	width: 200px;
	height: 100px;
	margin-top: 24px;
	border: 1px solid #f4836d;
	background: white;
	overflow: hidden;
	border-radius: 100px 100px 0 0;
}

.gauge .score {
	position: relative;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	overflow: hidden;
	transition-property: transform;
	transition-duration: 0.5s;
}

.gauge .score:before, .gauge .score:after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 50%;
}

.gauge .score:before {
	top: 0;
}

.gauge .score:after {
	bottom: 0;
	background: linear-gradient(to left, #fac8bf, #f4836d);
}

.gauge.pass {
	border-color: #45a889;
}

.gauge.pass .score:after {
	background: linear-gradient(to left, #b1dacd, #45a889);
}

.gauge.invalid {
	border-color: red;
}

.gauge.invalid:before {
	content: "Invalid Score!";
	line-height: 100px;
	color: red;
	font-weight: bold;
	display: block;
	text-align: center;
	padding: 6px 0;
}

.gauge.invalid .score {
	display: none;
}